#pragma once
void whichGamma(int igamma, char Gamma[8]){
        if (igamma==0) sprintf(Gamma,"S0");  // Gamma=I
        if (igamma==1) sprintf(Gamma,"V1"); // Gamma=g_1
        if (igamma==2) sprintf(Gamma,"V2"); // Gamma=g_2
        if (igamma==3) sprintf(Gamma,"V3"); // Gamma=g_3
        if (igamma==4) sprintf(Gamma,"V0"); // Gamma=g_0
        if (igamma==5) sprintf(Gamma,"P5"); // Gamma=g5
        if (igamma==6) sprintf(Gamma,"T1"); // Gamma=sigma_23
        if (igamma==7) sprintf(Gamma,"T2"); // Gamma=sigma_31
        if (igamma==8) sprintf(Gamma,"T3"); // Gamma=sigma_12
        if (igamma==9) sprintf(Gamma,"B1"); // Gamma=sigma_01
        if (igamma==10) sprintf(Gamma,"B2");// Gamma=sigma_02
        if (igamma==11) sprintf(Gamma,"B3");// Gamma=sigma_03
        if (igamma==12) sprintf(Gamma,"A1");// Gamma=g_1*g5
        if (igamma==13) sprintf(Gamma,"A2");// Gamma=g_2*g5
        if (igamma==14) sprintf(Gamma,"A3");// Gamma=g_3*g5
        if (igamma==15) sprintf(Gamma,"A0");// Gamma=g_0*g5
        //sigma_mu,nu=[g_mu,g_nu]/2

}
void whichGammaProm(int igamma, char Gamma[8]){
        if (igamma==0) sprintf(Gamma,"S");  // Gamma=I
        if (igamma==1) sprintf(Gamma,"V"); // Gamma=(g_1+g_2+g_3+g_4)/4.
        if (igamma==2) sprintf(Gamma,"P"); // Gamma=g5
        if (igamma==3) sprintf(Gamma,"T"); // Gamma=\sum sigma_i
        if (igamma==4) sprintf(Gamma,"A");// Gamma=g_1*g5+g_2*g5+g_3*g5+g_4*g5

}

void whichpm(int ipm, char pm[8]){
	if (ipm==0) sprintf(pm,"p"); 
	if (ipm==1) sprintf(pm,"m"); 
	if (ipm==2) sprintf(pm,"a");

}
void whichOa2(int iOa2, char Oa2[16]){
        if (iOa2==0) sprintf(Oa2,"uncor");  
        if (iOa2==1) sprintf(Oa2,"Oa2g2"); 
        if (iOa2==2) sprintf(Oa2,"Oa2g2b"); 
         if (iOa2==3) sprintf(Oa2,"Oa2g2bEvol");
}
void whichProp(int iprop, char setp[16])
{
if (iprop==0) sprintf(setp,"++++");
if (iprop==1) sprintf(setp,"+++-");
if (iprop==2) sprintf(setp,"++-+");
if (iprop==3) sprintf(setp,"++--");
if (iprop==4) sprintf(setp,"+-++");
if (iprop==5) sprintf(setp,"+-+-");
if (iprop==6) sprintf(setp,"+--+");
if (iprop==7) sprintf(setp,"+---");
if (iprop==8) sprintf(setp,"-+++");
if (iprop==9) sprintf(setp,"-++-");
if (iprop==10) sprintf(setp,"-+-+");
if (iprop==11) sprintf(setp,"-+--");
if (iprop==12) sprintf(setp,"--++");
if (iprop==13) sprintf(setp,"--+-");
if (iprop==14) sprintf(setp,"---+");
if (iprop==15) sprintf(setp,"----");
if (iprop==16) sprintf(setp,"000+");//EVEN

}
void whichSetp (int iprop,int  set_p[])
{
if (iprop==0) { set_p[3]=+1; set_p[2]=+1; set_p[1]=+1 ; set_p[0]=+1;}
if (iprop==1) { set_p[3]=+1; set_p[2]=+1; set_p[1]=+1 ; set_p[0]=-1;}
if (iprop==2) { set_p[3]=+1; set_p[2]=+1; set_p[1]=-1 ; set_p[0]=+1;}
if (iprop==3) { set_p[3]=+1; set_p[2]=+1; set_p[1]=-1 ; set_p[0]=-1;}
if (iprop==4) { set_p[3]=+1; set_p[2]=-1; set_p[1]=+1 ; set_p[0]=+1;}
if (iprop==5) { set_p[3]=+1; set_p[2]=-1; set_p[1]=+1 ; set_p[0]=-1;}
if (iprop==6) { set_p[3]=+1; set_p[2]=-1; set_p[1]=-1 ; set_p[0]=+1;}
if (iprop==7) { set_p[3]=+1; set_p[2]=-1; set_p[1]=-1 ; set_p[0]=-1;}
if (iprop==8) { set_p[3]=-1; set_p[2]=+1; set_p[1]=+1 ; set_p[0]=+1;}
if (iprop==9) { set_p[3]=-1; set_p[2]=+1; set_p[1]=+1 ; set_p[0]=-1;}
if (iprop==10) { set_p[3]=-1; set_p[2]=+1; set_p[1]=-1 ; set_p[0]=+1;}
if (iprop==11) { set_p[3]=-1; set_p[2]=+1; set_p[1]=-1 ; set_p[0]=-1;}
if (iprop==12) { set_p[3]=-1; set_p[2]=-1; set_p[1]=+1 ; set_p[0]=+1;}
if (iprop==13) { set_p[3]=-1; set_p[2]=-1; set_p[1]=+1 ; set_p[0]=-1;}
if (iprop==14) { set_p[3]=-1; set_p[2]=-1; set_p[1]=-1 ; set_p[0]=+1;}
if (iprop==15) { set_p[3]=-1; set_p[2]=-1; set_p[1]=-1 ; set_p[0]=-1;}
// EVEN
if (iprop==16) { set_p[3]=+1; set_p[2]=+1; set_p[1]=+1 ; set_p[0]=+1;}

}
void whichr(int rcomb, int *r)
{

        if (rcomb==0) {r[0]=0; r[1]=0; r[2]=0; r[3]=1; }
        if (rcomb==1) {r[0]=0; r[1]=0; r[2]=1; r[3]=0; }
        if (rcomb==2) {r[0]=0; r[1]=1; r[2]=0; r[3]=0; }
        if (rcomb==3) {r[0]=1; r[1]=0; r[2]=0; r[3]=0; }
        if (rcomb==4) {r[0]=1; r[1]=1; r[2]=1; r[3]=0; }
        if (rcomb==5) {r[0]=1; r[1]=1; r[2]=0; r[3]=1; }
        if (rcomb==6) {r[0]=1; r[1]=0; r[2]=1; r[3]=1; }
        if (rcomb==7) {r[0]=0; r[1]=1; r[2]=1; r[3]=1; }


}

void whichr_sort(int rcomb, int *r)
{
        if (rcomb==0) {r[0]=0; r[1]=0; r[2]=0; r[3]=1; }
	if (rcomb==1) {r[0]=1; r[1]=1; r[2]=1; r[3]=0; }
}
